package com.xxl.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 静态共享变量
 *
 * @author xxl
 * @date 2023/4/4
 */
@Component
@Slf4j
public class ModelData {


    /**
     * 存放用户token
     */
    public static String USER_TOKEN = null;
    /**
     * jwt的key,固定的，因为想服务器更新的时候用户还可以不需要登录只要 设置了记住我就行
     */
    public static String JWT_KEY = "WxnIjoiSFMyNTYifQ";

    /**
     * 点赞临时数据库
     */
    public  List<String> like = new ArrayList<>();
    /**
     * 保存文件的路径
     */
    @Value("${likeFileAddress}")
    String path;
    @Resource
    JwtUtil jwtUtil ;


    /**
     * 将集合数据写到txt文件上
     * 文件名以当前用户名字为文件
     */
    public  void saveLikeList() {
        String filePath = path +"/"+ jwtUtil.getTokenUser().getUsername() + ".txt";
        try (ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(filePath))){
            outputStream.writeObject(like);
        } catch (IOException e) {
            log.error("["+"写入文件出现异常："+e+"]");
        }
    }
    /**
     * 将txt文件数据读取到集合
     */
    public void readLikeFileTxt()  {
        String filePath = path +"/"+ jwtUtil.getTokenUser().getUsername() + ".txt";
        try( ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(filePath))) {
            like = (List<String>) inputStream.readObject();
        } catch (IOException e) {
            log.error("["+"读取文件出现异常："+e+"]");
        } catch (ClassNotFoundException e) {
            log.error("["+"读取文件出现异常："+e+"]");
        }
    }


}
